/*
 * 本头文件是参照 qnamespace.h写的，主要是仿照QT使用枚举类型数据这种做法
 * 来存放项目中使用到常量数据，这样做有两个原因：
 * 1）对于驱动的访问，可以做到完全屏蔽硬件信息，无需关注任何细节问题,大大减少应用开发人员的工作量
 * 2）对于使用频率比较高的常量数据，可以使用枚举类型来存放这些自定义的常量数据，方便对整个工程文件
 *    的管理，使得工程源码清晰明了.
 *
 * 版本: V2.0
 * 修改时间:    2015-4-24 08:47:32
 * 修改内容: 由于驱动修改了矩阵键盘的键值，所以在这里也对矩阵键盘的键值作了对应的修改，
 *          其他内容基本没有怎么修改
 */

#ifndef DEVNAMESPACE_H
#define DEVNAMESPACE_H

#include <QtCore/qglobal.h> //这里好像添不添加都没有影响,同样是参照 qnamespace.h 而写上来的


/*
 * 这是我自己定义的 "Ros" 命名空间，存放本工程所有的枚举数据类型，
 * 包含本头文件(#include "mynamespace.h")即可使用!
*/
namespace  Ros{

    /*
     * 自定义按键的枚举key，仿照QT封装好，方便编程使用至于按键的编号，
     * 在项目中自己可以决定。对于我们示教器，我已经统一编号了,
     * 编程时，请参照我设定的示教器按键编号的截图.
     */

enum  E_KEY {

    // ////////  Left  //////////
    E_KEY_NONE =0,
    E_KEY_START_RUN        =   0x100,
    E_KEY_STOP        =   0x80,
    E_KEY_CEASE        =   0x1111108,//NOP
    E_KEY_RETURN_ZERO        =   0x1111110,//NOP
    E_KEY_PALY_VOICE        =   0x1111140,//NOP
    E_KEY_LOCK        =   0x40,


    // ////////  Right  //////////
    E_KEY_AXIS1_N        =   0x200,
    E_KEY_AXIS1_P       =   0x400,

    E_KEY_AXIS2_N       =   0x800,
    E_KEY_AXIS2_P       =   0x1000,

    E_KEY_AXIS3_N       =   0x2000,
    E_KEY_AXIS3_P       =   0x4000,

    E_KEY_AXIS4_N       =   0x8000,
    E_KEY_AXIS4_P       =   0x10000,

    E_KEY_AXIS5_N       =   0x20000,
    E_KEY_AXIS5_P       =   0x40000,

    E_KEY_AXIS6_N       =   0x80000,
    E_KEY_AXIS6_P       =   0x100000,

    E_KEY_RIGHT_FUN1_SHIFT       =   0x200000,
    E_KEY_RIGHT_FUN2_LMOVE       =   0x2000000,
    E_KEY_RIGHT_FUN3_JMOVE       =   0x4000000,

    E_KEY_Vel_INCREASE=0x40000000,
    E_KEY_Vel_DECREASE=0x20000000,
    E_KEY_STEP_MODE_CHANGE=0x10000000,
    E_KEY_JOG_COORDINATE_CHANGE=0x20,
    E_KEY_JOG_COORDINATE_TOOL=0x400000,
    E_KEY_CLEAR_MESSAGE=0x40,
    E_KEY_SERVO_ON=0x1,
    E_KEY_ROBOT_CHANGE=0x800000,

} ;
//    enum  keys {

//        // ////////  Left  //////////
//        key1        =   62,
//        key2        =   61,
//        key3        =   60,
//        key4        =   59,
//        key5        =   87,
//        key6        =   68,
//        key7        =   67,
//        key8        =   66,

//        // ////////  Right  //////////
//        key9        =   191,
//        key10       =   190,

//        key11       =   259,
//        key12       =   258,

//        key13       =   464,
//        key14       =   265,

//        key15       =   376,
//        key16       =   309,

//        key17       =   396,
//        key18       =   391,

//        key19       =   257,
//        key20       =   189,

//        key21       =   264,
//        key22       =   308,
//        key23       =   389

//    } ;


    /*
     * 矩阵键盘的三种状态，有按下(keyDown)，松开(keyUp)，长按(keyKeepDown)三种状态;
     * 但是实际上就算是不使用这个长按(keyKeepDown)状态，也可以达到我们的功能需求，
     * 编程时请根据我给出参照示例程序的用法来使用，如果出现异常问题或者有其他需求，请告诉我，
     * 然后我再调整接口！！
     *
     */



    //自定义编码器的枚举，仿照QT封装好，方便编程使用
    enum encoder
    {
        forward     = 467 ,     //注意:当 value值是0 的时候，是由这个正转这个“键值”接收的
        back        = 466       // 反转
    };

}

#endif // DEVNAMESPACE_H
